home *** CD-ROM | disk | FTP | other *** search
- ;--------------------------T------------------T---------------T
- ***** Chunky Conversion HW ***** $VER: v1.0 (02.08.95)
-
- * I suggest you a little changes in your great code.
- * Please make some v40 features for speed up in some systems, what has
- * ChunkyToPlanar conversion hardware, ie.:
- * - CD32 (+ SX-1) builtin Akiko
- * - CyberVision 64 ( Not tested. Owner`s report are welcome.)
- * - etc.
-
- * Please INSERT this little `display-chunky` into your code, beacuse
- * Graphics/WriteChunkyPixels works 25 times faster, than the
- * Graphics/WritePixelArray8 routine in CD32 (+ SX-1 ).
- * In 640x480x8:
- * WritePixelArray8 takes 3.86 sec
- * WriteChunkyPixels takes 0.15 sec
- * WriteChunkyPixels takes 0.27 sec in one line per CALL
-
- * Graphics/WriteChunkyPixels works on top-speed,
- * if you CALL it one time per Picture (ie. GIF).
- * If you don`t want to decompress the whole Picture:
- * - for instant, contignous displaying,
- * - or not enough memory for puffer,
- * I suggest: You must decompress more then one lines per CALL,
- * beacuse the one line per CALLing will increase
- * the displaying speed to 1.82 times slower.
-
- * Bug reports and suggestions are welcome.
-
- * code by McPhoton of CooL Software
- * e-mail: szolim@dragon.klte.hu
- * code generated by ASM-One V1.25
- ;------------------------------------------------------------------------------
- VER_INCLUDES EQU 40
-
- INCDIR "INCLUDES:"
-
- INCLUDE "graphics/gfxbase.i"
- INCLUDE "lvos/graphics_lib.i"
-
- IFLT VER_INCLUDES-40
- _LVOWriteChunkyPixels EQU -1056
- gb_ChunkyToPlanarPtr EQU 508
- ENDC
- ;------------------------------------------------------------------------------
- ALIGNED MACRO
- CNOP 0,4
- ENDM
-
- GETBASE MACRO
- move.l (\1LibraryBase,pc),a6
- ENDM
-
- CALL MACRO
- IFC "\2",""
- jsr _LVO\1(a6)
- ELSE
- move.l (\1LibraryBase,pc),a6
- jsr _LVO\2(a6)
- ENDC
- ENDM
- ;------------------------------------------------------------------------------
- MyPicX=320
- MyPicY=256
- ;------------------------------------------------------------------------------
- Start moveq #0,d0
- rts
- ;------------------------------------------------------------------------------
- ALIGNED
- DisplayChunky GETBASE Graphics
- cmp.w #40,(LIB_VERSION,a6)
- blt.b .NoGraphics40
- *******************************************************************************
- * NOTES:
- * - Graphics/WriteChunkyPixels works the same speed as
- * Graphics/WritePixelArray8, if ChunkyToPlanarHW not presents.
- * Conclusion: Not realy need this two lines:
-
- tst.l (gb_ChunkyToPlanarPtr,a6)
- beq.b .NoChunkyToPlanarHW
- *******************************************************************************
- bra WriteChunkyPixels
-
- .NoGraphics40
- .NoChunkyToPlanarHW bra WritePixelArray8
- ;------------------------------------------------------------------------------
- ;WriteChunkyPixels(rp,xstart,ystart,xstop,ystop,array,bytesperrow)
- ; A0 D0 D1 D2 D3 A2 D4
- ;
- ;VOID WriteChunkyPixels(struct RastPort *, LONG, LONG,
- ; LONG, LONG, UBYTE *, LONG);
-
- * NOTES:
- * - Your array will not be modified.
- * - Dont needs TmpRastPort ( WOW!!! shorter and simplier code).
-
- ALIGNED
- WriteChunkyPixels moveq #0,d0
- moveq #0,d1
- move.l #MyPicX-1,d2
- move.l #MyPicY-1,d3
- move.l #MyPicX,d4
- move.l (PtrMyRastPort,pc),a0
- lea (ChunkyDatas,pc),a2
- CALL Graphics,WriteChunkyPixels
- rts
- ;------------------------------------------------------------------------------
- ;count = WritePixelArray8(rp,xstart,ystart,xstop,ystop,array,temprp)
- ;D0 A0 D0:16 D1:16 D2:16 D3:16 A2 A1
- ;
- ;LONG WritePixelArray8(struct RastPort *, UWORD, UWORD,
- ; UWORD, UWORD, UBYTE *, struct RastPort *);
-
- * NOTES:
- * - Your array will be cleared.
- * - Needs an allocated TmpRastPort.
-
- ALIGNED
- WritePixelArray8 moveq #0,d0
- moveq #0,d1
- move.l #MyPicX-1,d2
- move.l #MyPicY-1,d3
- move.l (PtrMyRastPort,pc),a0
- move.l (PtrMyTmpRastPort,pc),a1
- lea (ChunkyDatas,pc),a2
- CALL Graphics,WritePixelArray8
- rts
- ;------------------------------------------------------------------------------
- ALIGNED
- GraphicsLibraryBase dc.l 0
- PtrMyRastPort dc.l 0
- PtrMyTmpRastPort dc.l 0
-
- ChunkyDatas dcb.b MyPicX*MyPicY,0
- ;------------------------------------------------------------------------------
- END
-